Matthias Clasen [Fri, 20 Apr 2012 05:50:01 +0000 (01:50 -0400)]
Fix a cornercase of menu parsing
When a uimanager in a gtkbuilder file contains a menu,
the builder parser was getting confused.
https://bugzilla.gnome.org/show_bug.cgi?id=672789
Matthias Clasen [Fri, 20 Apr 2012 03:41:53 +0000 (23:41 -0400)]
Cosmetic
Cosimo Cecchi [Thu, 19 Apr 2012 19:01:04 +0000 (15:01 -0400)]
stylecontext: add a define for an OSD style class
Cosimo Cecchi [Thu, 19 Apr 2012 19:00:03 +0000 (15:00 -0400)]
stylecontext: reorder style classes defines
A couple of style classes defines ended up mixed with the region
defines.
Rob Bradford [Thu, 19 Apr 2012 16:25:56 +0000 (17:25 +0100)]
wayland: Improve the error reporting in the Cairo GL surface code path
Rob Bradford [Thu, 19 Apr 2012 16:18:46 +0000 (17:18 +0100)]
wayland: Improve error messages during SHM buffer creation
Use g_critical rather than fprintf and and also grab the error messages from
errno and from Cairo
Murray Cumming [Thu, 19 Apr 2012 07:25:40 +0000 (09:25 +0200)]
GtkAppplication docs: Fix small typo.
Marek Černocký [Wed, 18 Apr 2012 20:02:40 +0000 (22:02 +0200)]
Updated Czech translation
Cosimo Cecchi [Wed, 18 Apr 2012 18:40:33 +0000 (14:40 -0400)]
messagedialog: also set GtkMisc alignment to zero for dialog labels
Setting xalign to START is not enough to make them left-aligned in every
case. This fixes a regression introduced in commit
cc0be1f949020de1562534fbc31ddf0af4651fe2
https://bugzilla.gnome.org/show_bug.cgi?id=674286
Cosimo Cecchi [Wed, 18 Apr 2012 17:46:39 +0000 (13:46 -0400)]
messagedialog: don't use gtk_widget_override_font()
Instead of overriding the font theme settings, just set the Pango
attributes we want on the label. This fixes message dialogs growing on
style_update after recent GTK+ changes.
Cosimo Cecchi [Wed, 18 Apr 2012 17:23:29 +0000 (13:23 -0400)]
gdk: add missing GDK_VERSION_3_6 symbol
Cosimo Cecchi [Wed, 18 Apr 2012 16:12:32 +0000 (12:12 -0400)]
container: fix wrong branching logic
If the resize mode of the container was GTK_RESIZE_IMMEDIATE we would
also fall trough to the next case in the switch, and always throw an
assertion.
Matej Urbančič [Tue, 17 Apr 2012 19:44:37 +0000 (21:44 +0200)]
Updated Slovenian translation
Fran Diéguez [Tue, 17 Apr 2012 18:04:05 +0000 (20:04 +0200)]
Updated Galician translations
Signed-off-by: Fran Diéguez <fran.dieguez@mabishu.com>
Rob Bradford [Tue, 17 Apr 2012 17:28:55 +0000 (18:28 +0100)]
wayland: Expose GdkWaylandDisplayManager as a public GType
This permits a runtime test of whether we are running on the Wayland platform
or not.
Daniel Mustieles [Tue, 17 Apr 2012 16:03:01 +0000 (18:03 +0200)]
Updated Spanish translation
Piotr Drąg [Tue, 17 Apr 2012 15:17:21 +0000 (17:17 +0200)]
Updated POTFILES.in
Rob Bradford [Tue, 17 Apr 2012 13:06:18 +0000 (14:06 +0100)]
wayland: Rename GdkScreenWayland to GdkWaylandScreen
This makes it consistent with the functions in the vtable and also consistent
with other backends.
Rob Bradford [Mon, 16 Apr 2012 15:55:43 +0000 (16:55 +0100)]
wayland: Rename GdkDisplayWayland to GdkWaylandDisplay
This makes it consistent with the functions in the vtable and also consistent
with other backends.
Benjamin Otte [Tue, 17 Apr 2012 06:52:10 +0000 (08:52 +0200)]
tests: Add a parsing test for the transition property
Benjamin Otte [Fri, 13 Apr 2012 15:27:47 +0000 (17:27 +0200)]
container: Redo style validation handling
Instead of using 1 global queue for both resizes and style validation,
use 2 queues. This makes the code a lot simpler and fixes a bug where we
could accidentally stop restylying for very delayed restyles.
Benjamin Otte [Fri, 13 Apr 2012 14:51:19 +0000 (16:51 +0200)]
container: needs_resize is a container flag, not a widget flag
The widget flag is alloc_needed, needs_resize is used for "is queued
into the container resize queue".
Benjamin Otte [Wed, 11 Apr 2012 16:10:52 +0000 (18:10 +0200)]
cssvalue: Remove GObject macros
GtkCssValue is not a GObject
Benjamin Otte [Wed, 11 Apr 2012 14:36:48 +0000 (16:36 +0200)]
stylecontext: Avoid style_context_save() calls
Introduce style_data_lookup_for_state() that does this.
Benjamin Otte [Wed, 11 Apr 2012 14:27:38 +0000 (16:27 +0200)]
stylecontext: Pull all the animation code together
We now animate the core style information (see comment in
gtk_style_context_save()). A lot of widgets save + set custom style
classes/states during drawing and so can't be animated. It does work for
labels, menus and buttons though.
Benjamin Otte [Wed, 11 Apr 2012 14:15:45 +0000 (16:15 +0200)]
stylecontext: Add GtkCssAnimatedValues
This is a GtkCssComputedValues subclass. So it's essentially a store for
computed CSS values. But it can be animated by advancing it to a certain
timestamp.
Benjamin Otte [Wed, 11 Apr 2012 14:04:46 +0000 (16:04 +0200)]
animation: Add CSS transition object
This is an implementation of GtkStyleAnimation for CSS transitions.
Again, this doesn't do anything but store the data needed to do the
transition.
Benjamin Otte [Wed, 11 Apr 2012 14:00:57 +0000 (16:00 +0200)]
stylecontext: Add new class for animation handling
A StyleAnimation is an immutable object used to track the state of CSS
values. I'd have liked to make it fully immutable - ie not have the
timestamp in there - but couldn't find a place to sanely store the
timestamp.
This is an abstract base class. Implementations for this will be added
later (for both CSS3 transitions and animations, potentially for
animated images).
Actually aplying the information in this object will be done by a
different object commtted later.
Benjamin Otte [Wed, 11 Apr 2012 13:02:56 +0000 (15:02 +0200)]
button: Remove _gtk_button_paint()
All buttons use the same paint function these days. States are managed
correctly so this was just leftovers from GTK 1 or GTK 2.
Benjamin Otte [Wed, 11 Apr 2012 13:02:00 +0000 (15:02 +0200)]
menuitem: Don't set menubar style class randomly
a) We're not a menubar, you can match on the parent if you have to
b) It's not set while getting preferred sizes
Benjamin Otte [Wed, 11 Apr 2012 12:56:15 +0000 (14:56 +0200)]
widget: Set .default class when widget is default
Don't just conditionally set it on buttons.
Benjamin Otte [Wed, 11 Apr 2012 10:37:44 +0000 (12:37 +0200)]
stylecontext: Shuffle around code
This has two goals:
1) Move invalidation code out of a nested if branch. Invalidation is
actually the most important thing this function does.
2) Have the changes bitmask available. It will needed for invalidate
calls to children later.
Benjamin Otte [Wed, 11 Apr 2012 10:22:07 +0000 (12:22 +0200)]
stylecontext: Add style_info_set_data()
.. to take care of the refcounting properly.
Benjamin Otte [Wed, 11 Apr 2012 10:14:36 +0000 (12:14 +0200)]
stylecontext: Make StyleInfo keep the next pointer
Benjamin Otte [Tue, 10 Apr 2012 21:24:41 +0000 (23:24 +0200)]
stylecontext: Make StyleData refcounted
This is needed for animations where we want to keep a custom StyleData
for animations.
Benjamin Otte [Tue, 10 Apr 2012 13:50:00 +0000 (15:50 +0200)]
stylecontext: Add public API to stop animations
... and use it.
Of course, there still are no animations, so we don't turn anything off
yet.
Benjamin Otte [Tue, 10 Apr 2012 13:37:35 +0000 (15:37 +0200)]
stylecontext: Add an animating framework
The design principles were:
- synchronized
If multiple style contexts are animating, they should all do an
animation step at the same time.
- degrades well
Even when there's thousands of style contexts all animating at the same
time, the animation steps don't starve the CPU. This is achieved by
making sure the timeout is really fast. It just sets a bunch of flags.
- no hidden bottlenecks
Turning animatability on or off on a style context is O(1).
So far it is unused.
Benjamin Otte [Tue, 10 Apr 2012 11:25:56 +0000 (13:25 +0200)]
computedvalues: Split out a function
Benjamin Otte [Mon, 9 Apr 2012 19:15:22 +0000 (21:15 +0200)]
stylecontext: Don't queue a resize when none is needed
Benjamin Otte [Mon, 9 Apr 2012 19:04:47 +0000 (21:04 +0200)]
container: Split out a function
Benjamin Otte [Mon, 9 Apr 2012 18:53:37 +0000 (20:53 +0200)]
container: Remove duplicated flag
GtkContainer::need_resize and GtkWidget::alloc_needed are the same
thing.
Benjamin Otte [Mon, 9 Apr 2012 18:28:45 +0000 (20:28 +0200)]
container: Simplify code
This code should not have any functional changes and just be simpler.
Benjamin Otte [Sun, 8 Apr 2012 15:34:17 +0000 (17:34 +0200)]
stylecontext: Listen to the new changed signal
Benjamin Otte [Sun, 8 Apr 2012 15:35:24 +0000 (17:35 +0200)]
styleprovider: Make all implementors emit the new signal
... and listen to it in the cases where they use other style providers.
Benjamin Otte [Sun, 8 Apr 2012 15:33:22 +0000 (17:33 +0200)]
styleprovider: Add a private signal for when things change
Benjamin Otte [Sat, 7 Apr 2012 20:44:00 +0000 (22:44 +0200)]
stylecontext: Pass time to style_context_validate()
This way, we can ensure that every style context uses the same timestamp
for whatever they do.
Benjamin Otte [Sat, 7 Apr 2012 16:09:17 +0000 (18:09 +0200)]
stylecontext: Compute if things changed before invalidating
This is only a small performance boost by itself, but it's necessary
for animations, so we need it.
Benchmark numbers for my Glade benchmark for interested people:
GTK 3.4.0 last commit this commit
Raleigh
real 0m41.879s 0m10.176s 0m9.900s
user 0m41.394s 0m9.895s 0m9.628s
sys 0m0.111s 0m0.096s 0m0.102s
Adwaita (*)
real 0m51.049s 0m13.432s 0m14.848s 0m12.253s
user 0m50.487s 0m13.034s 0m13.218s 0m11.927s
sys 0m0.117s 0m0.151s 0m0.147s 0m0.107s
Ambiance (patched to not use private GTK APIs)
real 0m52.167s 0m13.115s 0m13.117s 0m12.944s
user 0m51.576s 0m12.739s 0m12.768s 0m12.651s
sys 0m0.119s 0m0.137s 0m0.136s 0m0.118s
(*) Adwaita and unico currently use custom properties, and
_gtk_css_value_compare() for custom properties always returns FALSE,
which makes this optimization never trigger. So I modified
_gtk_css_value_compare() to return TRUE for these properties instead and
reran the benchmark. Those are the numbers.
Benjamin Otte [Sat, 7 Apr 2012 14:39:17 +0000 (16:39 +0200)]
reftests: Fix reftests for recent changes
Benjamin Otte [Sat, 7 Apr 2012 12:15:35 +0000 (14:15 +0200)]
widget: Don't cache widget paths all the time
Add an internal API that allows GtkStyleContext to create a widget path
for the widget and with that bypassing gtk_widget_get_path() and that
function caching the path.
Benjamin Otte [Sat, 7 Apr 2012 09:08:23 +0000 (11:08 +0200)]
stylecontext: Remove theming_engine cache variable
Instead, look up the variable upon use. This is more correct (for when
the engine changes due to save/restore() shenanigans.
And it removes code that doesn't use the standard code paths.
Benjamin Otte [Sat, 7 Apr 2012 08:53:43 +0000 (10:53 +0200)]
stylecontext: Split out a function
Benjamin Otte [Sat, 7 Apr 2012 08:39:51 +0000 (10:39 +0200)]
styleproperty: Remove equal_func vfunc
Equality tests are done with _gtk_css_value_equal(). There is no need to
do it per-property, equal values will still be equal.
This essentially reverts
24f5d54329e028347bd76af42e86ed190c1229a2 and
92c7a7171e1240b6d961ee5b6f9ab6b596e98904.
Benjamin Otte [Sat, 7 Apr 2012 05:40:36 +0000 (07:40 +0200)]
cssvalue: Split out old value handling to new typed value
... and Make this new value be a real GValue, as we don't need to save
performance for these anymore (it's just used for custom properties).
And I'd rather have code work for all values then be optimized for no
reason.
Benjamin Otte [Sat, 7 Apr 2012 05:40:19 +0000 (07:40 +0200)]
themingengine: Fix outline-width
It's a number, not an int.
Benjamin Otte [Sat, 7 Apr 2012 05:38:35 +0000 (07:38 +0200)]
shorthand: Fix border query functions
We haven't been using ints there for a while, I wonder why that never
blew up...
Benjamin Otte [Sat, 7 Apr 2012 04:18:03 +0000 (06:18 +0200)]
symboliccolor: Treat it as a CssValue
.. now that it is one.
Benjamin Otte [Thu, 5 Apr 2012 20:29:07 +0000 (22:29 +0200)]
tests: Add a test ensuring currentColor is parsed everywhere
Benjamin Otte [Thu, 5 Apr 2012 20:28:21 +0000 (22:28 +0200)]
cssprovider: Add an empty line when printing
... between the @define-color statements and the rules.
Benjamin Otte [Thu, 5 Apr 2012 20:22:52 +0000 (22:22 +0200)]
symboliccolor: Parse 'currentColor' everywhere
Benjamin Otte [Thu, 5 Apr 2012 20:12:37 +0000 (22:12 +0200)]
symboliccolor: Pass the current color to the resolve function
This way, we can resolve things like
mix (currentColor, &otherColor);
and therefore parse currentColor as a regular color.
Benjamin Otte [Thu, 5 Apr 2012 19:09:35 +0000 (21:09 +0200)]
cssparser: Move symbolic color parser to gtksymboliccolor.c
Benjamin Otte [Thu, 5 Apr 2012 18:55:29 +0000 (20:55 +0200)]
symboliccolor: Turn this into a GtkCssValue
Benjamin Otte [Wed, 4 Apr 2012 20:33:27 +0000 (22:33 +0200)]
css: Add a shorthand 'transition' property
Benjamin Otte [Wed, 4 Apr 2012 17:02:18 +0000 (19:02 +0200)]
shorthand: Add ',' to value_is_done_parsing()
Benjamin Otte [Wed, 4 Apr 2012 16:55:51 +0000 (18:55 +0200)]
css: Remove old animation code
Deprecate public API where appropriate and make it no-ops.
Remove all calls to it.
Get rid of the 'transition' css property.
For now, this means spinners don't animate anymore.
Benjamin Otte [Wed, 4 Apr 2012 16:25:43 +0000 (18:25 +0200)]
css: Remove GtkCssNumber
It's completely replaced by GtkCssNumberValue now.
Benjamin Otte [Wed, 4 Apr 2012 16:23:49 +0000 (18:23 +0200)]
linear-gradient: Convert from GtkCssNumber to GtkCssValue
Benjamin Otte [Wed, 4 Apr 2012 15:42:45 +0000 (17:42 +0200)]
cssvalue: Convert border-image-width to border value
Benjamin Otte [Wed, 4 Apr 2012 14:15:41 +0000 (16:15 +0200)]
cssvalue: Add a border value
.. and parse border-image-slice with it.
Benjamin Otte [Wed, 4 Apr 2012 10:39:55 +0000 (12:39 +0200)]
cssvalue: Add a cssvalue for background-size
Benjamin Otte [Wed, 4 Apr 2012 09:44:57 +0000 (11:44 +0200)]
cssvalue: Add a custom value for repeats
In particular, that's background-repeat and border-image-repeat.
Also, fix up the border-image shorthand to allow any order.
Benjamin Otte [Tue, 3 Apr 2012 20:21:16 +0000 (22:21 +0200)]
cssvalue: Add a value for background-position
Benjamin Otte [Tue, 3 Apr 2012 19:26:34 +0000 (21:26 +0200)]
cssvalue: Add a css value for engines
Benjamin Otte [Tue, 3 Apr 2012 17:11:41 +0000 (19:11 +0200)]
cssstyleproperty: Convert binding sets
Instead of keeping a custom GPtrArray, keep it as a GtkCssArrayValue of
GtkCssStringValue. This way, we gain equality comparisons and print
functions for free.
Benjamin Otte [Tue, 3 Apr 2012 16:39:01 +0000 (18:39 +0200)]
cssvalue: Add a value for border-radius corner properties
... and convert those properties to this value.
Benjamin Otte [Tue, 3 Apr 2012 14:57:44 +0000 (16:57 +0200)]
css: Make outline-offset a number property
Benjamin Otte [Tue, 3 Apr 2012 13:33:00 +0000 (15:33 +0200)]
shadow: Add equal and transition support
... and enable transitions for the shadow properties.
Benjamin Otte [Tue, 3 Apr 2012 13:15:24 +0000 (15:15 +0200)]
cssvalue: Add GtkCssShadowsValue
This is necessary because shadows get treated differently from other
lists when transitioning.
Benjamin Otte [Tue, 3 Apr 2012 11:30:21 +0000 (13:30 +0200)]
tests: Add a parsing test for shadows
Benjamin Otte [Tue, 3 Apr 2012 11:29:29 +0000 (13:29 +0200)]
shadow: Rewrite to store contents as values
Benjamin Otte [Tue, 3 Apr 2012 10:07:53 +0000 (12:07 +0200)]
shadow: Make color a GtkCssValue
Benjamin Otte [Tue, 3 Apr 2012 09:49:46 +0000 (11:49 +0200)]
cssvalue: Make GtkCssShadowValue only hold one shadow
All the properties now are a GtkCssArrayValue of GtkCssSadowValue.
GtkCssArrayValue already does everything we want, so no need to
duplicate its funtionality.
Benjamin Otte [Tue, 3 Apr 2012 09:49:22 +0000 (11:49 +0200)]
themingengine: Make _gtk_theming_engine_paint_spinner() args const
Benjamin Otte [Tue, 3 Apr 2012 07:49:37 +0000 (09:49 +0200)]
cssarrayvalue: Redo parsing arrays
Does 3 things:
1) Introduce a "none" array signleton
2) Get rid of memleaks in error paths
3) Reduce code in parse funcs
Benjamin Otte [Mon, 2 Apr 2012 21:28:37 +0000 (23:28 +0200)]
stylecontext: Don't queue_resize() all the time
When a parent style context exists, there's no need to queue_resize() on
the widget, because the parent widget will call
gtk_style_context_validate() on us and _then_ we can call queue_resize()
if we have to.
Benjamin Otte [Mon, 2 Apr 2012 07:16:08 +0000 (09:16 +0200)]
cssstyleproperty: Mark all animatable properties
Only the ones that can be animated are marked of course. So more work is
needed.
This is important for
transition-property: all;
because it'll just animate all the properties that can be.
Benjamin Otte [Mon, 2 Apr 2012 06:53:51 +0000 (08:53 +0200)]
cssstyleproperty: Add _gtk_css_style_property_is_animated()
Benjamin Otte [Mon, 2 Apr 2012 06:47:11 +0000 (08:47 +0200)]
css: Move enum to the only source file using it
Benjamin Otte [Mon, 2 Apr 2012 01:37:25 +0000 (03:37 +0200)]
cssvalue: Add transition support for images
Benjamin Otte [Mon, 2 Apr 2012 01:25:30 +0000 (03:25 +0200)]
cssimage: Add GtkCssImageCrossFade
Supports the cross-fade() css notation the way the old CSS3 specs did.
The main reason for adding it is supporting image transitions though.
Benjamin Otte [Sun, 1 Apr 2012 05:28:35 +0000 (07:28 +0200)]
cssvalue: Add _gtk_css_value_to_string()
This is a tiny wrapper around _gtk_css_value_print().
It's intended for usage in gdb and printf debugging.
Benjamin Otte [Sun, 1 Apr 2012 04:22:20 +0000 (06:22 +0200)]
cssstyleproperty: Add transition properties
Benjamin Otte [Sun, 1 Apr 2012 04:20:48 +0000 (06:20 +0200)]
cssvalue: Add GtkCssEaseValue
This is supposed to hold the transition-easing-function and
animation-easing-function values.
Benjamin Otte [Tue, 17 Apr 2012 05:46:17 +0000 (07:46 +0200)]
cssvalue: Add a GtkCssValue for idents
Benjamin Otte [Sun, 1 Apr 2012 02:02:34 +0000 (04:02 +0200)]
css: Add <time> type to css number stuff
Benjamin Otte [Sun, 1 Apr 2012 01:41:19 +0000 (03:41 +0200)]
computedvalues: Fix signage error
Benjamin Otte [Sat, 31 Mar 2012 03:45:28 +0000 (05:45 +0200)]
css: Remove _gtk_css_computed_values_get_value_by_name()
Now that we use an enum for the IDs, we don't need that function
anymore.
Benjamin Otte [Sat, 31 Mar 2012 03:42:28 +0000 (05:42 +0200)]
stylecontext: Convert _gtk_style_context_peek_property()
Take the property id instead of the name.
Benjamin Otte [Sat, 31 Mar 2012 03:28:58 +0000 (05:28 +0200)]
css: Add an enum for all the style properties
So instead of using
_gtk_css_style_property_get_id (GTK_CSS_STYLE_PROPERTY
(_gtk_style_property_lookup ("name")))
one can now use
GTK_CSS_PROPERTY_NAME
Esaier, eh?
Benjamin Otte [Fri, 30 Mar 2012 15:47:26 +0000 (17:47 +0200)]
cssvalue: Add _gtk_css_value_transition()
Returns a value that transitions between start and end or %NULL if the
values cannot be transitioned.
So far, all implementations but numbers and rgba return NULL.